package com.ctshk.rpc.system.service;

import com.ctshk.rpc.system.dto.member.ContactQueryDTO;
import com.ctshk.rpc.system.dto.member.CrmAccountDTO;
import com.ctshk.rpc.system.req.crm.member.CrmMemberQueryReq;
import com.ctshk.rpc.system.req.crm.member.CrmMemberReq;
import com.ctshk.rpc.system.req.crm.member.CrmMemberUpdatePointsReq;

import java.math.BigDecimal;

/**
 * crm 会员积分接口
 */
public interface ICrmMemberService {

    /**
     * 查询星赏会会员信息接口 1会员
     *
     * @param crmMemberQueryReq
     * @return ContactQueryDTO
     */
    ContactQueryDTO queryMember(CrmMemberQueryReq crmMemberQueryReq);

    /**
     * 查询星赏会会员信息接口 1会员
     *
     * @param crmMemberQueryReq
     * @return ContactQueryDTO
     */
    CrmAccountDTO queryGroupMember(CrmMemberQueryReq crmMemberQueryReq);

    /**
     * 查询CRM会员详细 1会员?1:2
     *
     * @param crmMemberQueryReq
     * @return
     */
    CrmAccountDTO queryAccountDetail(CrmMemberQueryReq crmMemberQueryReq);

    /**
      * 更新会员积分接口
     *
     * @param crmMemberUpdatePointsReq 请求实体
     * @param contactQuery
     * @return
     */
    CrmMemberReq updatePoints(CrmMemberUpdatePointsReq crmMemberUpdatePointsReq, ContactQueryDTO contactQuery);

    /**
     * 更新会员积分接口
     *
     * @param crmMemberUpdatePointsReq 请求实体
     * @return
     */
    CrmMemberReq updatePoints(CrmMemberUpdatePointsReq crmMemberUpdatePointsReq);

    /**
     * 获取使用积分时的积分兑人民币比率
     *
     * @return
     */
    BigDecimal queryPointsToHkd();

    /**
     * 更新会员积分接口
     *
     * @param crmMemberUpdatePointsReq 请求实体
     * @param contactQuery
     * @return
     */
    CrmMemberReq updatePointsByStarVip(CrmMemberUpdatePointsReq crmMemberUpdatePointsReq, ContactQueryDTO contactQuery);

    /**
     * 更新会员积分接口
     *
     * @param crmMemberUpdatePointsReq 请求实体
     * @return
     */
    CrmMemberReq updatePointsByStarVip(CrmMemberUpdatePointsReq crmMemberUpdatePointsReq);
}
